// 商品轮播图

import { defineStore } from 'pinia'
import { getBannerApi,addBannerApi,delBannerApi,editBannerApi } from '../api/bannersApi'
import { ElMessage } from 'element-plus'

const useBannersStore = defineStore('banners', {
  state: () => {
    return {
      bannersList: [], // 数据列表
      dialogVisible: false, // 对话框
    }
  },
  actions: {
    // 分页获取轮播图数据
    getBannersAction() {
      getBannerApi(this.page,this.size).then(res => {
        // console.log(res,'轮播图数据-----')
        if(res.code === 200) {
          this.bannersList = res.list
        } else {
          console.log(res.msg,'轮播图数据获取失败------')
        }
      })
    },
    // 新增
    addBannersAction(data) {
      // 上传图片，需要将普通表单数据转换成formData对象
      const formData = new FormData()
      for (let key in data) {
        // 将表单数据添加到formData对象中
        formData.append(key, data[key])
      }
      addBannerApi(formData).then(res => {
        // console.log(res,'新增轮播图-------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '新增成功'
          })
          // 重新获取数据
          this.getBannersAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 删除
    delBannersAction(id) {
      delBannerApi(id).then(res => {
        // console.log(res,'删除轮播图--------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '删除成功'
          })
          // 重新获取数据
          this.getBannersAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 编辑
    editBannersAction(data) {
      // 上传图片，需要将普通表单数据转换成formData对象
      const formData = new FormData()
      for (let key in data) {
        // 将表单数据添加到formData对象中
        formData.append(key, data[key])
      }
      editBannerApi(formData).then(res => {
        // console.log(res,'编辑轮播图-------')
        if(res.code === 200) {
          ElMessage({
            type: 'success',
            message: '编辑成功'
          })
          // 重新获取数据
          this.getBannersAction()
        } else {
          ElMessage({
            type: 'error',
            message: res.msg
          })
        }
      })
    },
    // 关闭对话框
    closeDialog() {
      this.dialogVisible = false
    },
    // 打开对话框
    openDialog() {
      this.dialogVisible = true
    }
  }
})

export default useBannersStore
